## USECASE 02
##
## + Define more complex viewpoints
## + Define relations over voices
## + Use feature sets as results
## + Produce a report of applying the viewpoints, e.g. how much 'collision' (notes that get assigned multiple features)

# reasonable interpretation of the result to the lyrics field (below the actual#

# NOTE: this reasonable is in accordance w/ music21 implementation
#       principle that a reasonable default behavior exists for any call


# When defining viewpoint, the VP library provides useful functions to
# test the definition as it is being built


import music21
import music21.corpus

# Import a chorale
sBach = music21.corpus.parseWork('bach/bwv7.7')

import viewpoints


# Examine report of the results
# The report will show evidence of how 'reasonable' the lyrics output
# was.  For example, if a note participates in more than one value, it
# will show here
# linkedPD.report()


